package main

import (
	"fmt"
	"log"
	"os"
	"os/exec"
)

func main() {
	inputFile := "input.mp4"      // 输入视频文件名
	inputSrt := "1.srt"           // 字幕文件名
	outputPattern := "output.mp4" // 输出视频文件名模式，%d 会自动被序号替换
	//segmentDuration := 1            // 每个分割片段的时长（秒）

	// 检查输入文件是否存在
	if _, err := os.Stat(inputFile); os.IsNotExist(err) {
		log.Fatalf("Input file %s does not exist.", inputFile)
	}

	// 构造 ffmpeg 命令
	cmd := exec.Command("ffmpeg",
		"-i", inputFile,
		"-vf", fmt.Sprintf("subtitles=%s", inputSrt),
		outputPattern)
	// 构造 ffmpeg 命令
	//cmd := exec.Command("ffmpeg",
	//	"-i", outputPattern,
	//	"-map", "0:v", // 映射输入文件的视频流
	//	"-map", "0:a?", // 可选映射输入文件的音频流（如果存在）
	//	"-c:v", "copy", // 复制视频流
	//	"-c:a", "copy", // 复制音频流
	//	"-sn", // 禁止包含字幕流
	//	"3443.mp4")

	// 执行命令
	fmt.Println("Start splitting...")
	err := cmd.Run()
	if err != nil {
		log.Fatalf("Error splitting video: %s", err)
	}
	fmt.Println("Video splitting complete.")
}

//ffmpeg -i input.mp4 -i subs.ass -codec copy -map 0 -map 1 output1.mp4
//ffmpeg -i input.mp4 -ss 00:00:00 -to 00:05:00 -c copy segment1.mp4
//func ()  {
//
//}

//ffmpeg -i input.mkv -sn output.mkv

//   ffmpeg -i input.mp4 -vf "subtitles=1.srt" -c:v copy -c:a copy output_with_subs.mp4
//
/**
ffmpeg -i input.mp4 -vf "subtitles=1.srt" -c:v libx264 -preset veryfast -crf 18 -c:a copy output_with_subs.mp4
ffmpeg -i output.mkv -vcodec copy -acodec copy -sn video-no-subs.mkv
ffmpeg -i output.mkv -i subs.ass -codec copy -map 0 -map 1 output1.mkv

*/
